package cl.mt.mvc.action.oferente;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;


import cl.mt.dto.DTOOfertaCargaVista;
import cl.mt.helper.OfertaCargaHelper;



public class PublicarOfertaCargaAction extends Action {

	private Logger log = LogManager.getLogger(PublicarOfertaCargaAction.class.getName());
	
	  public ActionForward execute (ActionMapping mapping, ActionForm form,

            HttpServletRequest request, HttpServletResponse response) {
			
		  String forward= "ERROR";
		  log.debug("PublicarOfertaCargaAction..........");
		  String accion= request.getParameter("accion");
		  log.debug("campo accion:["+accion+"]");
		  
		  if ("addOferta".equals(accion)){
			  log.debug("cargar info para el formulario.");
	
			  forward="SUCCESS";
		
		  
		  }else if ("saveOferta".equals(accion)){
			  log.debug("guardar contenido del formulario en action");
			  
			  DTOOfertaCargaVista ofertaCarga = buscaDatos(request);
			  OfertaCargaHelper ofertaCargaHelper = new OfertaCargaHelper();
			  log.debug("Detalle carga "+ofertaCarga.getDetalleCarga());

			  ofertaCargaHelper.recibeOfertaCarga(ofertaCarga);
			  
			  forward="SUCCESS";
		  
		  
		  }else{
			  
			  log.debug("No hay accion a ejecutar.");
			  forward="ERROR";
		  }
		  
		  return mapping.findForward(forward);
	  }

	  
	  private DTOOfertaCargaVista buscaDatos(HttpServletRequest request){
		  DTOOfertaCargaVista ofertaCarga = new DTOOfertaCargaVista();
			
		  
		  
		  String str_date="11-June-07";
		  DateFormat formatter = new SimpleDateFormat("dd/mm/yyyy"); 
		  Date date ; 
		  
		   //date =formatter.parse(str_date); 
		  try {
			  if(request.getParameter("fechaDesdeInputDate") != null)
				ofertaCarga.setFechaDesde(formatter.parse(request.getParameter("fechaDesdeInputDate")));
				
			  if(request.getParameter("fechaHastaInputDate") != null)
				  ofertaCarga.setFechaHasta(formatter.parse(request.getParameter("fechaHastaInputDate")));
			 
		  } catch (ParseException e) {
				log.error("Error en el parser de la fecha:"+e.getMessage());
		  }
		  
		  if(request.getParameter("paisOrigenInput") != null)
		  ofertaCarga.setIdPaisOrigen(Integer.parseInt(request.getParameter("paisOrigenInput")));
		  if(request.getParameter("regionOrigenInput") != null)
		  ofertaCarga.setIdRegionOrigen(Integer.parseInt(request.getParameter("regionOrigenInput")));
		  if(request.getParameter("ciudadOrigenInput") != null)
		  ofertaCarga.setIdCiudadOrigen(Integer.parseInt(request.getParameter("ciudadOrigenInput")));
		  if(request.getParameter("paisDestinoInput") != null)
		  ofertaCarga.setIdPaisDestino(Integer.parseInt(request.getParameter("paisDestinoInput")));
		  if(request.getParameter("regionDestinoInput") != null)
		  ofertaCarga.setIdRegionDestino(Integer.parseInt(request.getParameter("regionDestinoInput")));
		  if(request.getParameter("ciudadDestinoInput") != null)
		  ofertaCarga.setIdCiudadDestino((Integer.parseInt(request.getParameter("ciudadDestinoInput"))));
		  if(request.getParameter("unidadCargaInput") != null)
		  ofertaCarga.setIdTipoUnidad(Integer.parseInt(request.getParameter("unidadCargaInput")));
		  if(request.getParameter("monedaInput") != null)
		  ofertaCarga.setIdTipoMoneda(Integer.parseInt(request.getParameter("monedaInput")));
		  if(request.getParameter("precioUnidadCargaInput") != null)
		  ofertaCarga.setPrecioReferencial(Integer.parseInt(request.getParameter("precioUnidadCargaInput")));
		  if(request.getParameter("tipoVehiculoInput") != null)
		  ofertaCarga.setIdTipoVehiculo(Integer.parseInt(request.getParameter("tipoVehiculoInput")));
		  if(request.getParameter("tipoRemolqueInput") != null)
		  ofertaCarga.setIdTipoRemolque(Integer.parseInt(request.getParameter("tipoRemolqueInput")));
		  if(request.getParameter("tipoPlataformaInput") != null)
		  ofertaCarga.setIdTipoPlataforma(Integer.parseInt(request.getParameter("tipoPlataformaInput")));		  
		  if(request.getParameter("cantidadCargaInput") != null)
		  ofertaCarga.setCantidad(Integer.parseInt(request.getParameter("cantidadCargaInput")));
		  if(request.getParameter("mercaderiaInput") != null)
		  ofertaCarga.setMercaderia(request.getParameter("mercaderiaInput"));
		  System.err.println("Mercaderia: "+ ofertaCarga.getMercaderia());
		  if(request.getParameter("detalleInput") != null)
		  ofertaCarga.setDetalleCarga(request.getParameter("detalleInput"));
	
		  
		  return ofertaCarga;
	  }
	  

	  
}